package ihm;

import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import javax.swing.JButton;
import javax.swing.JMenuBar;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

import visualisationRadar.VisualisationRadar;

public class PanneauCommandes extends JMenuBar implements ActionListener,MouseMotionListener {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5431600719080477460L;
	private JButton boutonAvant;
	private JButton boutonApres;
	private JButton boutonSwitch;	
	private JButton boutonSwitchCumul;	
	private JTextField champValeur;

	private NumberFormat nf = new DecimalFormat();
	
	private VisualisationRadar visualisationRadar;

	public PanneauCommandes(VisualisationRadar visualisationRadar)
	{
		super();	

		this.visualisationRadar=visualisationRadar;

		nf.setMaximumFractionDigits(2);
		nf.setMinimumFractionDigits(2);
		
		boutonAvant=new JButton("<<");	
		add(boutonAvant);
		boutonApres=new JButton(">>");		
		add(boutonApres);
		boutonSwitch=new JButton("Qualite/RR");		
		add(boutonSwitch);
		boutonSwitchCumul=new JButton("Cumul/5min");		
		add(boutonSwitchCumul);	
		champValeur=new JTextField();	
		champValeur.setColumns(20);
		champValeur.setText("" );	
		champValeur.setVisible(true);
		champValeur.setEditable(false);
		add(champValeur);
		
		boutonApres.addActionListener(this);
		boutonAvant.addActionListener(this);
		boutonSwitch.addActionListener(this);
		boutonSwitchCumul.addActionListener(this);
	}
	public JTextField getChampValeur() {
		return champValeur;
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==boutonApres)
		{	
			if(!visualisationRadar.deplacerImage(5))	
			{
				String chaineErreur=("Fichier  absent");				
				JOptionPane.showMessageDialog(this.getParent(),chaineErreur);
//				System.err.println("pas de fichier pour "+
//						visualisationRadar.getObjetRadar().getImageRadar().getChaine());
			}
		}
		if(e.getSource()==boutonAvant)
		{			
			if(!visualisationRadar.deplacerImage(-5))	
			{
				String chaineErreur=("Fichier  absent");				
				JOptionPane.showMessageDialog(this.getParent(),chaineErreur);
//				System.err.println("pas de fichier pour "+
//						visualisationRadar.getObjetRadar().getImageRadar().getChaine());
			}
		}

		if(e.getSource()==boutonSwitch) 
			/*permet de passer d une image qualite a une image RR 
			 * et inversement*/
		{					
			if(!visualisationRadar.switchImage())	
			{
				String chaineErreur=("Fichier  absent");				
				JOptionPane.showMessageDialog(this.getParent(),chaineErreur);
//				System.err.println("pas de fichier pour "+
//						visualisationRadar.getObjetRadar().getImageRadar().getChaine());
			}		
		}
		if(e.getSource()==boutonSwitchCumul) 
			/*permet de passer d une image refl a une image cumul 
			 * et inversement*/
		{					
			if(!visualisationRadar.switchImageCumul())	
			{
				String chaineErreur=("Fichier absent");				
				JOptionPane.showMessageDialog(this.getParent(),chaineErreur);
//				System.err.println("pas de fichier pour "+
//						visualisationRadar.getObjetRadar().getImageRadar().getChaine());
			}		
		}
	}
	@Override
	public void mouseDragged(MouseEvent e) {
		// TODO Auto-generated method stub
	}
	
	@Override
	public void mouseMoved(MouseEvent e) {
		Point souris=new Point(e.getX(),e.getY());

		if(souris.x>0 && souris.x<VisualisationRadar.NBPIXELS && souris.y>0 && souris.y<VisualisationRadar.NBPIXELS)
		{
			String chaine="pixel "+souris.x+":"+souris.y;
			try{
				chaine+=", valeur : "+nf.format(visualisationRadar.getObjetRadar().
						getImageRadar().getDonnees().getVecteurDonnees().get(souris.y*VisualisationRadar.NBPIXELS+souris.x));
			}catch(Exception ex){
				//ex.printStackTrace();
			}
			champValeur.setText(chaine);
		}
	}
}